package user;

import Operation.*;
import jdk.nashorn.internal.runtime.FindProperty;

import java.util.Scanner;

//普通用户
public class NormalUser extends User{
    //构造方法,类被创建的时候,构造方法也会被执行.(对应的构造方法)
//    所以此处是将需要具体实现的类放到一个接口数据中去,然后根据用户选项来去执行
    public NormalUser(){
        //初始化operations
        //接口类型的数组,int[] arr; arr = new int[]{1,2,3};
//      如果单拿出来看, IOperation Operations = new ExitOperation();
//        public class ExitOperation implements IOperation{}
//        ExitOpertion继承接口,此时表达的含义不再是"扩展",而是"实现".
//        再进行调用的时候同样可以创建一个接口的引用,对应到一个子类的实例.（多态的实现，“一个接口，多个方法”，只要对实现了这个接口的类进行调用，就能调用里边对应的方法）
//        接口不能被单独实例化
        this.operations = new IOperation[]{
                new ExitOperation(),
                new DisplayOperation(),
                new FindOperation(),
                new BorrowOperation(),
                new ReturnOperation()
        };
    }

    @Override
    public int menu() {
//        打印普通用户的菜单
        System.out.println("===============================================");
        System.out.println("欢迎宁,"+this.getUserName());//继续自父类的get方法,this表示带当前对象的引用
        System.out.println("1.查看书籍列表");
        System.out.println("2.查找指定书籍");
        System.out.println("3.借阅书籍");
        System.out.println("4.归还书籍");
        System.out.println("0.退出系统");
        System.out.println("===============================================");
        System.out.println("请选择:>");
        Scanner scanner = new Scanner(System.in);
        int choice = scanner.nextInt();
        return choice;
    }
}
